package org.summer.lawyer.domain.bo.articleupvote;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.summer.common.mybatis.core.domain.BaseEntitySearch;
import org.summer.lawyer.domain.ArticleUpvote;

import java.io.Serial;
import java.util.Date;

/**
 * 文章点赞记录业务对象 article_upvote
 *
 * @author summer
 * @date 2024-06-27
 */
@Schema(title ="文章点赞记录视图对象 article_upvote", description = "文章点赞记录视图对象 article_upvote")
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ArticleUpvote.class, reverseConvertGenerate = false)
public class ArticleUpvoteBo extends BaseEntitySearch {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(title = "id", type = "Long", description = "主键ID")
    //@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 文章ID
     */
    @Schema(title = "articleId", type = "Long", description = "文章ID")
    //@NotNull(message = "文章ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long articleId;

    /**
     * 文章分类ID  （0最新，1每日普法，2司法判例，3古法研究院）
     */
    @Schema(title = "categoryId", type = "String", description = "文章分类ID  （0最新，1每日普法，2司法判例，3古法研究院）")
    //@NotBlank(message = "文章分类ID  （0最新，1每日普法，2司法判例，3古法研究院）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String categoryId;

    /**
     * 文章分类
     */
    @Schema(title = "categoryName", type = "String", description = "文章分类")
    //@NotBlank(message = "文章分类不能为空", groups = { AddGroup.class, EditGroup.class })
    private String categoryName;

    /**
     * 文章标题
     */
    @Schema(title = "title", type = "String", description = "文章标题")
    //@NotBlank(message = "文章标题不能为空", groups = { AddGroup.class, EditGroup.class })
    private String title;

    /**
     * 文章封面图片
     */
    @Schema(title = "imageUrl", type = "String", description = "文章封面图片")
    //@NotBlank(message = "文章封面图片不能为空", groups = { AddGroup.class, EditGroup.class })
    private String imageUrl;

    /**
     * 评论用户ID
     */
    @Schema(title = "wxUserId", type = "Long", description = "评论用户ID")
    //@NotNull(message = "评论用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long wxUserId;

    /**
     * 昵称
     */
    @Schema(title = "nickname", type = "String", description = "昵称")
    //@NotBlank(message = "昵称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String nickname;

    /**
     * 点赞时间
     */
    @Schema(title = "upvoteTime", type = "Date", description = "点赞时间")
    //@NotNull(message = "点赞时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date upvoteTime;

    /**
     * 是否取消点赞(0未取消，1已取消）
     */
    @Schema(title = "cancelUpvote", type = "String", description = "是否取消点赞(0未取消，1已取消）")
    //@NotBlank(message = "是否取消点赞(0未取消，1已取消）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cancelUpvote;

    /**
     * 取消时间
     */
    @Schema(title = "cancelTime", type = "Date", description = "取消时间")
    //@NotNull(message = "取消时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date cancelTime;


}
